#ifndef __ESB_CONFIG_H
#define __ESB_CONFIG_H

#include <esb.h>

#define ESB_MODE_ID 50
#define ESB_PROTOCOL_ID 51
#define ESB_RETRANSMIT_DELAY_ID 52
#define ESB_BITRATE_ID 53
#define ESB_SELECTIVE_AUTO_ACK_ID 54
#define ESB_BASE_ADDR_0_ID 55
#define ESB_BASE_ADDR_1_ID 56
#define ESB_PREFIXES_ID 57
#define ESB_CRC_MODE_ID 58
#define ESB_TX_OUTPUT_POWER_ID 59
#define ESB_RETRANSMIT_COUNT_ID 60
#define ESB_TX_MODE_ID 61
#define ESB_PAYLOAD_LENGTH_ID 62
#define ESB_USE_FAST_RAMP_UP_ID 63

int esb_config_test(void);

int esb_mode_read(void);
int esb_mode_write(enum esb_mode mode);
int esb_mode_get(void);
int esb_bitrate_read(void);
int esb_bitrate_write(enum esb_bitrate bitrate);
int esb_bitrate_get(void);
int esb_protocol_read(void);
int esb_protocol_write(enum esb_protocol protocol);
int esb_protocol_get(void);
int esb_retransmit_delay_read(void);
int esb_retransmit_delay_write(uint32_t retransmit_delay);
int esb_retransmit_delay_get(void);
int esb_retransmit_count_read(void);
int esb_retransmit_count_write(uint32_t retransmit_count);
int esb_retransmit_count_get(void);
int esb_selective_auto_ack_read(void);
int esb_selective_auto_ack_write(bool selective_auto_ack);
int esb_selective_auto_ack_get(void);
int esb_crc_mode_read(void);
int esb_crc_mode_write(enum esb_crc crc);
int esb_crc_mode_get(void);
int esb_tx_output_power_read(void);
int esb_tx_output_power_write(int8_t tx_output_power);
int esb_tx_output_power_get(void);
int esb_tx_mode_read(void);
int esb_tx_mode_write(enum esb_tx_mode tx_mode);
int esb_tx_mode_get(void);
int esb_payload_length_read(void);
int esb_payload_length_write(uint32_t payload_length);
int esb_payload_length_get(void);
int esb_use_fast_ramp_up_read(void);
int esb_use_fast_ramp_up_write(bool use_fast_ramp_up);
int esb_use_fast_ramp_up_get(void);

#endif